/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.mapperv3;

import org.eclipse.emf.common.util.EMap;

import org.eclipse.emf.ecore.EObject;

import org.eclipse.emf.ecore.util.FeatureMap;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Document Root</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getMixed <em>Mixed</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getXMLNSPrefixMap <em>XMLNS Prefix Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getXSISchemaLocation <em>XSI Schema Location</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getArg <em>Arg</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getAssociation <em>Association</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCache <em>Cache</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCacheRef <em>Cache Ref</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCase <em>Case</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getChoose <em>Choose</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCollection <em>Collection</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getConstructor <em>Constructor</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getDelete <em>Delete</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getDiscriminator <em>Discriminator</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getForeach <em>Foreach</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getId <em>Id</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getIdArg <em>Id Arg</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getIf <em>If</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getInclude <em>Include</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getInsert <em>Insert</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getMapper <em>Mapper</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getOtherwise <em>Otherwise</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getParameter <em>Parameter</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getParameterMap <em>Parameter Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getProperty <em>Property</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getResult <em>Result</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getResultMap <em>Result Map</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSelect <em>Select</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSelectKey <em>Select Key</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSet <em>Set</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSql <em>Sql</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getTrim <em>Trim</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getTypeAlias <em>Type Alias</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getUpdate <em>Update</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getWhen <em>When</em>}</li>
 *   <li>{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getWhere <em>Where</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot()
 * @model extendedMetaData="name='' kind='mixed'"
 * @generated
 */
public interface DocumentRoot extends EObject {
	/**
	 * Returns the value of the '<em><b>Mixed</b></em>' attribute list.
	 * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Mixed</em>' attribute list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Mixed</em>' attribute list.
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Mixed()
	 * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
	 *        extendedMetaData="kind='elementWildcard' name=':mixed'"
	 * @generated
	 */
	FeatureMap getMixed();

	/**
	 * Returns the value of the '<em><b>XMLNS Prefix Map</b></em>' map.
	 * The key is of type {@link java.lang.String},
	 * and the value is of type {@link java.lang.String},
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>XMLNS Prefix Map</em>' map isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>XMLNS Prefix Map</em>' map.
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_XMLNSPrefixMap()
	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
	 *        extendedMetaData="kind='attribute' name='xmlns:prefix'"
	 * @generated
	 */
	EMap<String, String> getXMLNSPrefixMap();

	/**
	 * Returns the value of the '<em><b>XSI Schema Location</b></em>' map.
	 * The key is of type {@link java.lang.String},
	 * and the value is of type {@link java.lang.String},
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>XSI Schema Location</em>' map isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>XSI Schema Location</em>' map.
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_XSISchemaLocation()
	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
	 *        extendedMetaData="kind='attribute' name='xsi:schemaLocation'"
	 * @generated
	 */
	EMap<String, String> getXSISchemaLocation();

	/**
	 * Returns the value of the '<em><b>Arg</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Arg</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Arg</em>' containment reference.
	 * @see #setArg(Arg)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Arg()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='arg' namespace='##targetNamespace'"
	 * @generated
	 */
	Arg getArg();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getArg <em>Arg</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Arg</em>' containment reference.
	 * @see #getArg()
	 * @generated
	 */
	void setArg(Arg value);

	/**
	 * Returns the value of the '<em><b>Association</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Association</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Association</em>' containment reference.
	 * @see #setAssociation(Association)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Association()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='association' namespace='##targetNamespace'"
	 * @generated
	 */
	Association getAssociation();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getAssociation <em>Association</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Association</em>' containment reference.
	 * @see #getAssociation()
	 * @generated
	 */
	void setAssociation(Association value);

	/**
	 * Returns the value of the '<em><b>Cache</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Cache</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Cache</em>' containment reference.
	 * @see #setCache(Cache)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Cache()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='cache' namespace='##targetNamespace'"
	 * @generated
	 */
	Cache getCache();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCache <em>Cache</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Cache</em>' containment reference.
	 * @see #getCache()
	 * @generated
	 */
	void setCache(Cache value);

	/**
	 * Returns the value of the '<em><b>Cache Ref</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Cache Ref</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Cache Ref</em>' containment reference.
	 * @see #setCacheRef(CacheRef)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_CacheRef()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='cache-ref' namespace='##targetNamespace'"
	 * @generated
	 */
	CacheRef getCacheRef();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCacheRef <em>Cache Ref</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Cache Ref</em>' containment reference.
	 * @see #getCacheRef()
	 * @generated
	 */
	void setCacheRef(CacheRef value);

	/**
	 * Returns the value of the '<em><b>Case</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Case</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Case</em>' containment reference.
	 * @see #setCase(Case)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Case()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='case' namespace='##targetNamespace'"
	 * @generated
	 */
	Case getCase();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCase <em>Case</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Case</em>' containment reference.
	 * @see #getCase()
	 * @generated
	 */
	void setCase(Case value);

	/**
	 * Returns the value of the '<em><b>Choose</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Choose</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Choose</em>' containment reference.
	 * @see #setChoose(Choose)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Choose()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='choose' namespace='##targetNamespace'"
	 * @generated
	 */
	Choose getChoose();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getChoose <em>Choose</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Choose</em>' containment reference.
	 * @see #getChoose()
	 * @generated
	 */
	void setChoose(Choose value);

	/**
	 * Returns the value of the '<em><b>Collection</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Collection</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Collection</em>' containment reference.
	 * @see #setCollection(Collection)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Collection()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='collection' namespace='##targetNamespace'"
	 * @generated
	 */
	Collection getCollection();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getCollection <em>Collection</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Collection</em>' containment reference.
	 * @see #getCollection()
	 * @generated
	 */
	void setCollection(Collection value);

	/**
	 * Returns the value of the '<em><b>Constructor</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Constructor</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Constructor</em>' containment reference.
	 * @see #setConstructor(Constructor)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Constructor()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='constructor' namespace='##targetNamespace'"
	 * @generated
	 */
	Constructor getConstructor();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getConstructor <em>Constructor</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Constructor</em>' containment reference.
	 * @see #getConstructor()
	 * @generated
	 */
	void setConstructor(Constructor value);

	/**
	 * Returns the value of the '<em><b>Delete</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Delete</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Delete</em>' containment reference.
	 * @see #setDelete(Delete)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Delete()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='delete' namespace='##targetNamespace'"
	 * @generated
	 */
	Delete getDelete();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getDelete <em>Delete</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Delete</em>' containment reference.
	 * @see #getDelete()
	 * @generated
	 */
	void setDelete(Delete value);

	/**
	 * Returns the value of the '<em><b>Discriminator</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Discriminator</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Discriminator</em>' containment reference.
	 * @see #setDiscriminator(Discriminator)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Discriminator()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='discriminator' namespace='##targetNamespace'"
	 * @generated
	 */
	Discriminator getDiscriminator();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getDiscriminator <em>Discriminator</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Discriminator</em>' containment reference.
	 * @see #getDiscriminator()
	 * @generated
	 */
	void setDiscriminator(Discriminator value);

	/**
	 * Returns the value of the '<em><b>Foreach</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Foreach</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Foreach</em>' containment reference.
	 * @see #setForeach(Foreach)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Foreach()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='foreach' namespace='##targetNamespace'"
	 * @generated
	 */
	Foreach getForeach();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getForeach <em>Foreach</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Foreach</em>' containment reference.
	 * @see #getForeach()
	 * @generated
	 */
	void setForeach(Foreach value);

	/**
	 * Returns the value of the '<em><b>Id</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Id</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Id</em>' containment reference.
	 * @see #setId(Id)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Id()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='id' namespace='##targetNamespace'"
	 * @generated
	 */
	Id getId();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getId <em>Id</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Id</em>' containment reference.
	 * @see #getId()
	 * @generated
	 */
	void setId(Id value);

	/**
	 * Returns the value of the '<em><b>Id Arg</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Id Arg</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Id Arg</em>' containment reference.
	 * @see #setIdArg(IdArg)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_IdArg()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='idArg' namespace='##targetNamespace'"
	 * @generated
	 */
	IdArg getIdArg();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getIdArg <em>Id Arg</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Id Arg</em>' containment reference.
	 * @see #getIdArg()
	 * @generated
	 */
	void setIdArg(IdArg value);

	/**
	 * Returns the value of the '<em><b>If</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>If</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>If</em>' containment reference.
	 * @see #setIf(If)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_If()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='if' namespace='##targetNamespace'"
	 * @generated
	 */
	If getIf();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getIf <em>If</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>If</em>' containment reference.
	 * @see #getIf()
	 * @generated
	 */
	void setIf(If value);

	/**
	 * Returns the value of the '<em><b>Include</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Include</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Include</em>' containment reference.
	 * @see #setInclude(Include)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Include()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='include' namespace='##targetNamespace'"
	 * @generated
	 */
	Include getInclude();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getInclude <em>Include</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Include</em>' containment reference.
	 * @see #getInclude()
	 * @generated
	 */
	void setInclude(Include value);

	/**
	 * Returns the value of the '<em><b>Insert</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Insert</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Insert</em>' containment reference.
	 * @see #setInsert(Insert)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Insert()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='insert' namespace='##targetNamespace'"
	 * @generated
	 */
	Insert getInsert();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getInsert <em>Insert</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Insert</em>' containment reference.
	 * @see #getInsert()
	 * @generated
	 */
	void setInsert(Insert value);

	/**
	 * Returns the value of the '<em><b>Mapper</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Mapper</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Mapper</em>' containment reference.
	 * @see #setMapper(Mapper)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Mapper()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='mapper' namespace='##targetNamespace'"
	 * @generated
	 */
	Mapper getMapper();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getMapper <em>Mapper</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Mapper</em>' containment reference.
	 * @see #getMapper()
	 * @generated
	 */
	void setMapper(Mapper value);

	/**
	 * Returns the value of the '<em><b>Otherwise</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Otherwise</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Otherwise</em>' containment reference.
	 * @see #setOtherwise(Otherwise)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Otherwise()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='otherwise' namespace='##targetNamespace'"
	 * @generated
	 */
	Otherwise getOtherwise();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getOtherwise <em>Otherwise</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Otherwise</em>' containment reference.
	 * @see #getOtherwise()
	 * @generated
	 */
	void setOtherwise(Otherwise value);

	/**
	 * Returns the value of the '<em><b>Parameter</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Parameter</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Parameter</em>' containment reference.
	 * @see #setParameter(Parameter)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Parameter()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='parameter' namespace='##targetNamespace'"
	 * @generated
	 */
	Parameter getParameter();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getParameter <em>Parameter</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Parameter</em>' containment reference.
	 * @see #getParameter()
	 * @generated
	 */
	void setParameter(Parameter value);

	/**
	 * Returns the value of the '<em><b>Parameter Map</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Parameter Map</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Parameter Map</em>' containment reference.
	 * @see #setParameterMap(ParameterMap)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_ParameterMap()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='parameterMap' namespace='##targetNamespace'"
	 * @generated
	 */
	ParameterMap getParameterMap();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getParameterMap <em>Parameter Map</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Parameter Map</em>' containment reference.
	 * @see #getParameterMap()
	 * @generated
	 */
	void setParameterMap(ParameterMap value);

	/**
	 * Returns the value of the '<em><b>Property</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Property</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Property</em>' containment reference.
	 * @see #setProperty(Property)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Property()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='property' namespace='##targetNamespace'"
	 * @generated
	 */
	Property getProperty();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getProperty <em>Property</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Property</em>' containment reference.
	 * @see #getProperty()
	 * @generated
	 */
	void setProperty(Property value);

	/**
	 * Returns the value of the '<em><b>Result</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Result</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Result</em>' containment reference.
	 * @see #setResult(Result)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Result()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='result' namespace='##targetNamespace'"
	 * @generated
	 */
	Result getResult();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getResult <em>Result</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Result</em>' containment reference.
	 * @see #getResult()
	 * @generated
	 */
	void setResult(Result value);

	/**
	 * Returns the value of the '<em><b>Result Map</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Result Map</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Result Map</em>' containment reference.
	 * @see #setResultMap(ResultMap)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_ResultMap()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='resultMap' namespace='##targetNamespace'"
	 * @generated
	 */
	ResultMap getResultMap();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getResultMap <em>Result Map</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Result Map</em>' containment reference.
	 * @see #getResultMap()
	 * @generated
	 */
	void setResultMap(ResultMap value);

	/**
	 * Returns the value of the '<em><b>Select</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Select</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Select</em>' containment reference.
	 * @see #setSelect(Select)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Select()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='select' namespace='##targetNamespace'"
	 * @generated
	 */
	Select getSelect();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSelect <em>Select</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Select</em>' containment reference.
	 * @see #getSelect()
	 * @generated
	 */
	void setSelect(Select value);

	/**
	 * Returns the value of the '<em><b>Select Key</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Select Key</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Select Key</em>' containment reference.
	 * @see #setSelectKey(SelectKey)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_SelectKey()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='selectKey' namespace='##targetNamespace'"
	 * @generated
	 */
	SelectKey getSelectKey();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSelectKey <em>Select Key</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Select Key</em>' containment reference.
	 * @see #getSelectKey()
	 * @generated
	 */
	void setSelectKey(SelectKey value);

	/**
	 * Returns the value of the '<em><b>Set</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Set</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Set</em>' containment reference.
	 * @see #setSet(Set)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Set()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='set' namespace='##targetNamespace'"
	 * @generated
	 */
	Set getSet();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSet <em>Set</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Set</em>' containment reference.
	 * @see #getSet()
	 * @generated
	 */
	void setSet(Set value);

	/**
	 * Returns the value of the '<em><b>Sql</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Sql</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Sql</em>' containment reference.
	 * @see #setSql(Sql)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Sql()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='sql' namespace='##targetNamespace'"
	 * @generated
	 */
	Sql getSql();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getSql <em>Sql</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Sql</em>' containment reference.
	 * @see #getSql()
	 * @generated
	 */
	void setSql(Sql value);

	/**
	 * Returns the value of the '<em><b>Trim</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Trim</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Trim</em>' containment reference.
	 * @see #setTrim(Trim)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Trim()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='trim' namespace='##targetNamespace'"
	 * @generated
	 */
	Trim getTrim();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getTrim <em>Trim</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Trim</em>' containment reference.
	 * @see #getTrim()
	 * @generated
	 */
	void setTrim(Trim value);

	/**
	 * Returns the value of the '<em><b>Type Alias</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Alias</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Alias</em>' containment reference.
	 * @see #setTypeAlias(TypeAlias)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_TypeAlias()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='typeAlias' namespace='##targetNamespace'"
	 * @generated
	 */
	TypeAlias getTypeAlias();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getTypeAlias <em>Type Alias</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Alias</em>' containment reference.
	 * @see #getTypeAlias()
	 * @generated
	 */
	void setTypeAlias(TypeAlias value);

	/**
	 * Returns the value of the '<em><b>Update</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Update</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Update</em>' containment reference.
	 * @see #setUpdate(Update)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Update()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='update' namespace='##targetNamespace'"
	 * @generated
	 */
	Update getUpdate();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getUpdate <em>Update</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Update</em>' containment reference.
	 * @see #getUpdate()
	 * @generated
	 */
	void setUpdate(Update value);

	/**
	 * Returns the value of the '<em><b>When</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>When</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>When</em>' containment reference.
	 * @see #setWhen(When)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_When()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='when' namespace='##targetNamespace'"
	 * @generated
	 */
	When getWhen();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getWhen <em>When</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>When</em>' containment reference.
	 * @see #getWhen()
	 * @generated
	 */
	void setWhen(When value);

	/**
	 * Returns the value of the '<em><b>Where</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Where</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Where</em>' containment reference.
	 * @see #setWhere(Where)
	 * @see org.taobao.ibatiside.model.mapperv3.Mapperv3Package#getDocumentRoot_Where()
	 * @model containment="true" upper="-2" transient="true" volatile="true" derived="true"
	 *        extendedMetaData="kind='element' name='where' namespace='##targetNamespace'"
	 * @generated
	 */
	Where getWhere();

	/**
	 * Sets the value of the '{@link org.taobao.ibatiside.model.mapperv3.DocumentRoot#getWhere <em>Where</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Where</em>' containment reference.
	 * @see #getWhere()
	 * @generated
	 */
	void setWhere(Where value);

} // DocumentRoot
